<?php

if ( !defined( 'BASEPATH' ) ) exit( 'No direct script access allowed' );

/**
 * 扩展CI_Session
 */
class MY_Session extends CI_Session
{

    private $_userData = 'zf_userSession';

    /**
     * 设置用户session数据
     * @param array $userData 用户session数据
     */
    public function setUserSession( $userData )
    {
        $this->set_userdata( $this->_userData, $userData );
    }

    /**
     * 获取记录用户session数据
     * @param string 指定获取哪个session数据[可选]
     * @return mixed
     * @example
     * --------------------------------------------
     * id => 用户ID
     * username => 用户名
     * email => 用户邮箱
     * groupid => 用户组ID
     * groupname => 用户组名
     */
    public function getUserSession( $item = '' )
    {
        if ( empty( $item ) ) return $this->userdata( $this->_userData );
        $userData = $this->userdata( $this->_userData );
        if ( isset( $userData[$item] ) ) return $userData[$item];
        return $userData;
    }

    /**
     * 清空用户session
     */
    public function unsetUserSession()
    {
        $this->unset_userdata( $this->_userData );
    }

    /**
     * 判读用户是否合法
     * @todo 加入更加严谨的判断机制
     * @return bool
     */
    public function validUser()
    {
        $userData = $this->userdata( $this->_userData );
        return !empty( $userData );
    }

}